package com.boot.mgt.service

import com.boot.core.result.ResultTo
import com.boot.mgt.controller.web.vo.EditAccidentVo
import com.boot.mgt.model.TaAccident
import com.boot.mgt.model.TaAccidentImage
import com.boot.mgt.model.TaHmsPush
import com.googlecode.jsonrpc4j.JsonRpcService
import javax.servlet.http.HttpServletResponse

@JsonRpcService("accident")
interface TaAccidentService {

    fun designate(accident_report_id: Int, police_type: Int, police_number: String): ResultTo

    fun policeAccept(has_accepted: Int, accident_report_id: Int): ResultTo

    fun policeAcceptRpc(has_accepted: Int, accident_report_id: Int, police_number: String): ResultTo

    fun forwardPoliceList(name: String?): ResultTo

    fun forwardPoliceListRpc(name: String?, police_number: String?, org_num: String?): ResultTo

    fun policeForward(police_number_session: String, police_number: String, accident_report_id: Int): ResultTo

    fun assign(assignedPoliceNumber: String, accidentReportId: Int): ResultTo

    fun list(page_index: Int?, page_size: Int?, map: MutableMap<String, Any>): ResultTo

    fun detail(id: Int): ResultTo

    fun policeAddReport(taAccident: TaAccident, isAddPaper: Boolean, isWebEdit: Boolean): ResultTo

    fun policeAddReportRpc(taAccident: TaAccident, isAddPaper: Boolean, isWebEdit: Boolean, police_number: String): ResultTo

    fun webEditAccident(editAccidentVo: EditAccidentVo, isAddPaper: Boolean): ResultTo

    fun policeAddReportImage(taAccidentImage: TaAccidentImage): ResultTo

    fun accidentList(page_index: Int?, page_size: Int?, map: HashMap<String, Any>): ResultTo

    fun outExcel(map: HashMap<String, Any>, response: HttpServletResponse)

    fun selectPosition(accident: TaAccident, isTiming: Boolean)

    fun relatedAcdFile(accidentId: Int): ResultTo

    fun relatedLocalFile(accidentId: Int): ResultTo

    fun accidentCount(time_begin: String, time_end: String): ResultTo

    fun searchTaAccidentMapList(map: Map<String, Any?>) : List<Map<String, Any?>>?

    fun updateDynamicCoordinates(id: String, longitude: Double, latitude: Double)

    fun searchMqMessage(police_number: String): List<TaHmsPush>?

}